Several types of data storage devices, such as Flash memory devices, store data in cells of non-volatile media. A physical property of each cell, such as a stored charge, material phase, electrical resistance, magnetization, or the like, is alterable to encode data. Parameters for the non-volatile media may define how a storage device stores data in the cells. For example, a storage device may use one or more read voltage thresholds, resistivity thresholds, or the like to separate the range of possible values for the physical property of a cell into discrete states, so that each state encodes a possible data value.
An error may occur if the stored value for a cell drifts past a threshold parameter from one state into an adjacent state due to cell damage, cell leakage, temperature effects, or other disturbances. Leakage and other disturbances may increase with age as storage cells are used over time. So, over time, different parameters may become more optimal for the storage cells, in order to avoid errors. Error correcting codes may also compensate for some errors in data.
Error rates may increase, though, as storage density increases, because shrinking feature sizes for storage cells make the cells more susceptible to disturbances, and because increasing the number of states per cell increases the likelihood that a disturbance will change the state of a cell. Stronger error correcting codes may compensate for increased error rates, but may also may also increase the computational and storage overhead associated with encoding, storing, and decoding data.